第1章
CMake入门
CMake是什么 · 为什么选择CMake · CMake与Makefile · NDK角色
概念基础
第2章
环境搭建
Android Studio · NDK/CMake下载 · SDK Manager · 首个NDK项目
工具配置
第3章
CMakeLists.txt基础
project() · cmake_minimum_required · add_library · target_link_libraries
语法核心
第4章
JNI基础
Java↔C++桥梁 · 函数命名 · 数据类型映射 · javah · 简单示例
JNI接口
第5章
Native方法声明与实现
native关键字 · JNIEnv · jobject · 字符串/数组处理
实现JNI
第6章
CMake变量与缓存
set() · 作用域 · 缓存变量 · 预设变量 · 引用展开
变量缓存
第7章
条件判断与循环
if/elseif/else · while · foreach · 逻辑/比较运算符
流程控制
第8章
函数与宏
function vs macro · 参数传递 · 返回值 · 重载模拟 · 封装
函数宏
第9章
查找依赖库
find_library · find_package · find_path · find_file · pkg_check_modules
查找依赖
第10章
预编译库集成
.a vs .so · add_library导入 · IMPORTED · 链接预编译库
静态库动态库
第11章
多库管理
多个add_library · 依赖关系 · target_link_libraries · 可见性
多库链接
第12章
ABI与多架构支持
ABI列表 · arm64-v8a/x86 · ANDROID_ABI · 多ABI构建
架构兼容
第13章
NDK API与系统库
log库 · Android系统库 · 链接系统库 · __android_log_print
NDK日志
第14章
OpenCV集成
OpenCV for Android · CMake集成 · Mat↔Bitmap · 图像处理
OpenCV视觉
第15章
FFmpeg集成
编译为Android库 · CMake配置 · 音视频解码 · 问题排查
FFmpeg多媒体
第16章
自定义NDK模块
模块化设计 · 独立CMakeLists · add_subdirectory · 模块通信
模块架构
第17章
构建类型与优化
Debug/Release · CMAKE_BUILD_TYPE · -O2/-O3 · strip符号表
优化构建
第18章
编译选项与宏定义
add_compile_options · target_compile_options · add_definitions · 条件编译
编译宏
第19章
链接选项与脚本
target_link_options · 链接器脚本 · LINKER:前缀 · 符号导出
链接脚本
第20章
生成器表达式
语法 · $ · $ · 条件链接 · 平台配置
表达式生成器
第21章
自定义命令与目标
add_custom_command · add_custom_target · 后处理 · 代码生成器
自定义构建
第22章
测试与CTest
enable_testing · add_test · CTest · Google Test集成
测试CTest
第23章
安装与打包
install() · CPack · AAR包 · Maven仓库发布
打包发布
第24章
性能优化
内存对齐 · NEON · 缓存友好 · OpenMP · 性能分析
优化NEON
第25章
调试技巧
GDB/LLDB · Android Studio调试 · 日志 · addr2line栈回溯
调试LLDB
第26章
常见错误与解决方案
undefined reference · linker error · ABI mismatch · FindClass失败 · 内存泄漏
排错经验
第27章
实战项目一:图像滤镜
架构设计 · CMakeLists · JNI接口 · 滤镜算法 · 性能对比
实战滤镜
第28章
实战项目二:音视频播放器
FFmpeg解码 · OpenSL ES · ANativeWindow · 同步机制
实战播放器
第29章
实战项目三:机器学习推理
TensorFlow Lite · 模型加载 · 推理接口 · 基准测试
实战ML
第30章
进阶与展望
CMake 3.x新特性 · Ninja · Bazel对比 · 学习资源
进阶趋势